/************************************
 * @数据库交互工具类
 * 可以用于执行查询，更新，存储过程
 *
 */
var BkfmDBUtils = {
		/*Encrypt: function(str){
			if(Ext.isEmpty(str)){
				return "";
			}

			var keyHex =CryptoJS.enc.Utf8.parse(Constants.ENCRYPTKEY);
		    var encrypted = CryptoJS.DES.encrypt(str, keyHex, {
		        mode: CryptoJS.mode.ECB,
		        padding: CryptoJS.pad.Pkcs7
		    });
		    return encrypted.toString();
		},*/
		/**
		 * 检查数量
		 * @param opts{objPath:"",filter:""}
		 */
		CheckNumber: function(opts){
			if(Ext.isEmpty(opts) || Ext.isEmpty(opts.objPath)){
				AjaxUtils.showError("无效的执行参数");
				return ;
			}
			var count = null;
			//提交请求
			AjaxUtils.CallService({
				async : false,//同步
				url: CONTEXT.contextPath+"/bkfm/db/v1/checknumber",
				params: {
					"obj_path": opts.objPath,
					"filter": opts.filter
				},
				call: function(data){
					if(data.status == "OK"){
						count = data.entity || 0;
					}else{
						AjaxUtils.showError("查询记录数量异常");
					}
				}
			});
			return count;
		},
		/**
		 * 数据库查询SQL
		 * @param sql sql语句
		 * @param callbackFn 回调函数
		 */
		Query: function(sql,callbackFn){
			if(Ext.isEmpty(sql)){
				AjaxUtils.showError("无效的执行参数");
				return ;
			}

			//提交请求
			AjaxUtils.CallService({
				url: CONTEXT.contextPath+"/bkfm/db/v1/query",
				params: {
					//"sql": BkfmDBUtils.Encrypt(sql)
					"sql": Utils.encrypt(sql)
				},
				call: function(data){
					if(Ext.isFunction(callbackFn)){
						callbackFn(data);
					}
				}
			});
		},
		/**
		 * 数据库执行更新语句
		 * @param sql
		 * @param callbackFn
		 */
		Execute: function(sqllist,callbackFn){
			if(Ext.isEmpty(sqllist) || sqllist.length ==0){
				AjaxUtils.showError("无效的执行参数");
				return ;
			}
			var sqlArray = new Array();
			if(Ext.isArray(sqllist)){
				//sql数组
				for(i in sqllist){
					//var sql = BkfmDBUtils.Encrypt(sqllist[i]);
					var sql = Utils.encrypt(sqllist[i]);
					sqlArray.push(sql);
				}
			}else{
				//单独sql
				//sqlArray.push(BkfmDBUtils.Encrypt(sqllist));
				sqlArray.push(Utils.encrypt(sqllist));
			}
			//提交请求
			AjaxUtils.CallService({
				url: CONTEXT.contextPath+"/bkfm/db/v1/execute",
				dataType: "json",
				params: sqlArray,
				call: function(data){
					if(Ext.isFunction(callbackFn)){
						callbackFn(data);
					}
				}
			});
		}
}